Cloud computing refers to the provision of computational resources on demand via a computer network. Because the cloud is an underlying delivery mechanism, cloud based applications and services may support any type of software application or service in use today.
Cloud computing fundamentally allows for a functional separation between the resources used and the user's computer. The computing resources may or may not reside outside the local network, for example in an internet connected datacenter. What is important to the individual user is that they simply work. This separation between the resources used and the user's computer also has allowed for the development of new business models. All of the development and maintenance tasks involved in provisioning the application are performed by the service provider. The user's computer may contain very little software or data (perhaps a minimal operating system and web browser only), serving as little more than a display terminal for processes occurring on a network of computers far away. Consumers now routinely use data intensive applications driven by cloud technology which were previously unavailable due to cost and deployment complexity.
A common shorthand for a provided cloud computing service (or even an aggregation of all existing cloud services) is “The Cloud”. The most common analogy to explain cloud computing is that of public utilities such as electricity, gas, and water. Just as centralized and standardized utilities free individuals from the difficulties of generating electricity or pumping water, cloud computing frees users from certain hardware and software installation and maintenance tasks through the use of simpler hardware that accesses a vast network of computing resources (processors, hard drives, etc.). The sharing of resources reduces the cost to individuals
Cloud computing utilizes the network as a means to connect user end point devices (end points) to resources that are centralized in a data center. The data center may be accessed via the internet or a company network, or both. In many cases a cloud service may allow access from a variety of end points such as a mobile phone, a PC or a tablet. Cloud services may be designed to be vendor independent, working equally well with Linux, Mac and PC platforms. They also can allow access from any internet connected location, allowing mobile workers to access business systems remotely as in telecommuting, and extending the reach of business services provided by outsourcing.
A user endpoint with minimal software requirements may submit a task for processing. The service provider may pool the processing power of multiple remote computers in “the cloud” to achieve the task, such as data warehousing of hundreds of terabytes, managing and synchronizing multiple documents, online or computationally intensive work. These tasks would normally be difficult, time consuming, or expensive for an individual user or a small company to accomplish. The outcome of the processing task is returned to the client over the network. In essence, the heavy lifting of a task is outsourced to an external entity with more resources and expertise.
The services—such as, email and data storage and processing—and software are provided by the company hosting the remote computers. The clients are only responsible for having a computer with a connection to the Internet, or a company network, in order to make requests to and receive data from the cloud. Computation and storage is divided among the remote computers in order to handle large volumes of both, thus the client need not purchase expensive hardware to handle the task.